DATA … RENAMING WITH SUFFIX
Häufig möchte man eine interne Tabelle definieren, die alle Felder aus zwei Dictionarytabellen besitzt. Das ist natürlich möglich. Diese Dictionary-Struktur heißt ZMARAMARC:
DATA gt_data TYPE STANDARD TABLE OF zmaramarc.
DATA gs_data TYPE zmaramarc.
Mit dieser Definition erzeugt man eine Tabelle mit zwei Strukturen. Die Felder werden über den Strukturnamen angesprochen: gs_data-mara-matnr.
Problem
Diese Datenstruktur macht bei der Verwendung in ALVs Probleme, da der Feldkatalog nicht korrekt erzeugt werden kann: Doppelte Feldnamen werden ignoriert Eine Ausnahme bildet das SALV-Model cl_salv_table. Diese Klasse kann mit der Datenstruktur umgehen. Die normalen ALVs haben jedoch Probleme, weil es keine einzelnen Feldnamen gibt.
Lösung
SAP bietet den INCLUDE-Zusatz RENAMING WITH SUFFIX an. Mithilfe dieses Zusatzes ist es einerseits möglich, die Struktur zu behalten und andererseits auch eindeutige Feldnamen zu haben:
TYPES BEGIN OF ty_data.
INCLUDE TYPE mara AS mara RENAMING WITH SUFFIX mara.
INCLUDE TYPE marc AS marc RENAMING WITH SUFFIX marc.
TYPES END OF ty_data.
Die Felder können also weiterhin über die Struktur angesprochen werden: gs_data-mara-matnr. Es werden jedoch auch eindeutige Feldname erzeugt, indem jedem Feldnamen der Suffix angehängt wird: gs_data-matnrmara.
Im Dictionary heißt die Option allerdings nicht “SUFFIX”, sondern Gruppe und ist nur verfügbar, wenn die Komponenten per INCLUDE eingebunden werden:
Nebeneffekt
Bei beiden Versionen der Datendefinition ist es übrigens möglich, die komplette Tabelle mittels JOIN zu füllen:
SELECT * FROM mara
INNER JOIN marc ON marc~matnr = mara~matnr
INTO TABLE gt_data.
Sind in der MARC mehrere Sätze zu einem Material vorhanden, so wird die Struktur MARA jedesmal korrekt gefüllt. Die MARA-Daten sind dann zwar mehrfach vorhanden, aber die Verarbeitungslogik wird dadurch eventuell einfacher.
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024